/**
 * 只能输入字母、数字或他们的组合
 */
export function _isEnOrNumber(str) {
  if (/[^\a-\z\A-\Z0-9]/g.test(str)) return false
  return true
}
// 只能小写字母数字
export function _isSmallEnOrNumber(str) {
  if (/[^\a-\z0-9]/g.test(str)) return false
  return true
}
// 可为小写字母，数字，下划线的组合，不可以以下划线开头
export function isEnOrNum(str) {
  if (/[^\a-\z\0-9\_]/g.test(str)) return false
  return true
}
// 数组是否有重复
export function isRepeatArr(arr) {
  var hash = {}
  for (var i in arr) {
    if (hash[arr[i]]) {
      return true
    }
    hash[arr[i]] = true
  }
  return false
}
// 整数
export function isIntNumber(val) {
  if (/^-?\\d+$/.test(val)) {
    return true
  } else {
    return false
  }
}
// 字段类型
export const fieldTypes = [
  { value: 'int', name: 'int' },
  { value: 'bool', name: 'bool' },
  { value: 'bytea', name: 'bytea' },
  { value: 'varchar', name: 'varchar' },
  { value: 'text', name: 'text' },
  { value: 'float', name: 'float' },
  { value: 'decimal', name: 'decimal' },
  { value: 'date', name: 'date' },
  { value: 'time', name: 'time' },
  { value: 'timestamp', name: 'timestamp' }
]
// 请求方式
export const methodsWays = [
  { name: 'GET', value: 'GET' },
  { name: 'POST', value: 'POST' },
  { name: 'PUT', value: 'PUT' },
  { name: 'DELETE', value: 'DELETE' }
]
export const tableType = val => {
  // id：用来表示表类型；1：维表；2：事实表
  switch (val) {
    case 1:
      return {
        id: 1,
        name: '维表',
        type: 1
      }
    case 2:
      return {
        id: 2,
        name: '事实表',
        type: 1
      }
  }
}
export const interfaceStatus = [
  {
    id: 0,
    name: '正常'
  },
  {
    id: 1,
    name: '维护中'
  },
  {
    id: -1,
    name: '已删除'
  }
]
export const apiPublishStatus = [
  {
    id: 0,
    name: '未发布'
  },
  {
    id: 1,
    name: '已发布(未公开)'
  },
  {
    id: 2,
    name: '已发布(已公开)'
  }
]
export const filterArrarByAttr = (arr, originAttr, contrastValue, returnAttr) => {
  let value = arr.find(item => {
    return item[originAttr] === contrastValue
  })
  return value ? value[returnAttr] : null
}
export function paramFilter(v) {
  if (v.indexOf('${') != -1) {
    let val = null
    val = v.replace(/\${/, '')
    val = val.replace(/}/, '')
    return val
  } else {
    return v
  }
}
